var userDetail = {
	userData : {},
	ztreeInstance: null,
	validateFields : {
		account : {
			validators : {
				notEmpty : {
					message : '账号不能为空'
				}
			}
		},
		sex : {
			validators : {
				notEmpty : {
					message : '性别不能为空'
				}
			}
		},
		password : {
			validators : {
				notEmpty : {
					message : '密码不能为空'
				}
			}
		},
		groupName : {
			validators : {
				notEmpty : {
					message : '组织机构不能为空'
				}
			}
		},
		userName : {
			validators : {
				notEmpty : {
					message : '用户名称不能为空'
				}
			}
		},
		rePassword : {
			validators : {
				notEmpty : {
					message : '重复密码不能为空'
				},
				identical:{
					 field: 'password',
					 message: '两次密码输入不一致'
				}
			}
		},
		roleId : {
			validators : {
				notEmpty : {
					message : '角色名称不能为空'
				}
			}
		}
	},
	// 清空数据
	clearData : function() {
		this.userData = {};
	},
	// 关闭窗口
	close : function() {
		parent.layer.close(window.parent.User.layerIndex);
	},
	// 设置参数
	setData : function(key, value) {
		this.userData[key] = (typeof value == "undefined") ? $("#" + key).val()
				: value;
		return this;
	},
	// 获取对应值
	getData : function(key) {
		return $("#" + key).val();
	},
	// 一次性设置所有的参数
	collectData : function() {
		this.setData('id').setData('userName').setData('account')
			.setData('sex').setData('password').setData('groupId')
			.setData('phone').setData('roleId');
	},
	// 校验参数是否为空
	validate : function() {
		$('#userDetail').data("bootstrapValidator").resetForm();
		$('#userDetail').bootstrapValidator('validate');
		return $("#userDetail").data('bootstrapValidator').isValid();
	},
	//显示 树形结构
	showGroupTree : function(){
		Base.showInputTree("groupName", "ztreeDiv", 15, 34);
	},
	//点击树节点
	clickGroupTree : function(e, treeId, treeNode){
		$("#groupName").attr("value", userDetail.ztreeInstance.getSelectedVal());
	    $("#groupId").attr("value", treeNode.id);
	},
	//校验 密码是否一致
	validatePwd : function(){
		var password = this.getData("password");
	    var rePassword = this.getData("rePassword");
	    if (password == rePassword) {
	        return true;
	    } else {
	        return false;
	    }
	},
	//提交ajax
	submit : function(action) {
		var succesInfo = "";
		var errorInfo = "";
		var url = "";
		if (action == 'add') {
			succesInfo = "添加成功!";
			errorInfo = "添加失败!";
			url = '/sysUser/add';
		} else if (action == 'edit') {
			succesInfo = "修改成功!";
			errorInfo = "修改失败!";
			url = '/sysUser/edit';
		} else {
			Base.error('执行方法错误!');
			return;
		}

		this.clearData(); // 清理数据
		this.collectData(); // 设置所有值

		if (!this.validate()) { // 校验参数
			return;
		}
		if (!this.validatePwd()) {
	        Base.error("两次密码输入不一致");
	        return;
	    }
		var ajax = new $ajax(Base.adminPath + url, function(data) {
			if(data.status){
				Base.success(data.data);
				window.parent.User.table.refresh(); // 刷新列表
				userDetail.close();
			}else{
				Base.error(data.message);
			}
		}, function(data) {
			Base.error(errorInfo);
		});
		ajax.set(this.userData);
		ajax.start();
	}
}

$(function() {
	Base.initValidator("userDetail", userDetail.validateFields);
	
	var ztree = new $ZTree("zTree", Base.adminPath + "/sysGroup/ztreeList");
    ztree.bindOnClick(userDetail.clickGroupTree);
    ztree.init();
    userDetail.ztreeInstance = ztree;
	
	if(sex){
        $("#sex").val(sex);
    }else{
        $("#sex").val(1);
    }
	
	if(groupId){
    	var node = ztree.setDefalutVal('id',groupId);
		$('#groupName').val(node.name);
		$('#groupId').val(node.id);
    }

})